<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>流程控制作业</title>
  </head>
  <body>
    <script>
      /*
       T0 自己完成流程控制的思维导图，明天检查 ✅
       */

      /*
       T1  在控制台中循环输出 0 0.2 0.4 0.6 0.8 1
       0.2  (1+2)/10
       */
      // for (var i = 0; i < 6; i++) {
      //   console.log(i / 5);
      // }
      // for (var i = 0; i <= 1; i += 0.2) {
      //   console.log(i);
      // }

      //补充知识--进制
      //十进制
      // console.log(.3);
      // console.log(3e10); 300 = 3*10^2+0*10^1+0*10^0
      //二进制 0和1来表示 前缀为0b(binary)
      // console.log(0b11); //3
      //十六进制 0～9 A(a)~F(f) 10~15 前缀为0x
      // console.log(0xff); //255 = 15*16+15

      //进制转换
      //1.十转二 除2 反向取余 直到商为0
      // 9（10）->1001(2) 9=2^3+2^0=8+1
      /*
                         余数
        2    9
          2  4            1
           2 2            0
           2 1            0
             0            1

           30(10)->?(2)
           30 = 16 +8 +4+2=11110(2)
             */
      //2. 2进制转10进制
      // 1011(2)->11(10)
      // 1*2^3+0*2^2+1*2^1+1*2^0 = 8+0+2+1 = 11

      // 30= 16+14=16+8+4+2 = 11110

      //8421

      //十进制转十六进制
      //15(10)->f(16)
      // 15 =8+7=8+4+2+1=1111（2）->f
      //30=11110->0001  1110->1e

      //小数部分
      //1.十进制转二进制--乘2取整，顺序输出
      // 0.68(10)->?(2)  (精确到小数点后5位)
      /*
       0.68*2=1.36---1
       0.36*2=0.72---0
       0.72*2=1.44---1
       0.44*2=0.88---0
       0.88*2=1.76---1
       0.10101
       */
      /*
         2^1  2^0 小数点(.) 2^-1 2^-2 2^-3
           000.001
           0.125(10)->?（2）

           0.125*2=0.25--0
           0.25*2=0.5 ---0
           0.5*2=1-------1
           0.001
      */
      //2转10
      //0.1111(2)->0.9375（10）
      //0.5+0.25+0.125+0.0625 = 0.9375

      //0.1+0.2 ==0.3 false？
      /*
       0.1*2=0.2 --- 0
       0.2*2=0.4
       0.4*2=0.8
       0.8*2=1.6
       0.6*2=1.2
       0.2*2
       */
      /*
       T2  break和continue有什么区别
       */

      /*
       T3  循环输出 1-100 里奇数
       */
      // for (var i = 1; i <= 100; i++) {
      //   //判断奇数
      //   if (i % 2 !== 0) {
      //     console.log(i);
      //   }
      // }
      // for (var i = 1; i <= 100; i += 2) {
      //   console.log(i);
      // }
      /*
       T4  有一座桥，当你身上所拥有的钱大于 30000 时，每过一次桥则需要支付 3000 元。当你身上的钱小于或等于 30000 时，每过一次桥则需要支付你身上 10%的钱。已知有一个人身上有 33000 元，问此人能过这座桥多少次之后，身上的钱会少于(<) 100 块?
       */

      /* 
      过桥
      每过一次桥 需要捞他多少💰？
      💰>30000   -3000  money=money-3000 -> money-=3000
      💰<=30000  收10%  money=money(1-10%)-> money*=0.9
*/
      // var money = 33000; //钱的数量
      // var count = 0; //过桥次数
      // while (money >= 100) {
      //   //进行扣钱
      //   if (money > 30000) {
      //     money -= 3000;
      //     count++;
      //   } else {
      //     money *= 0.9;
      //     count++;
      //   }
      // }
      // console.log(count); //56
      /*
       T5  小明去存 1000 钱，每天会产生 1%的利息，求问，30 天后，小明可以拿回多少钱
       */

      /*
      1000  1% 30
      1%利息  循环体中: money =money*(1+0.01) = 1.01*money
      30次
      */
      // var money = 1000;
      // for (var i = 1; i <= 30; i++) {
      //   money *= 1.01;
      // }
      // console.log(money); //1347.8xxxxxx
      /*
       (提高)求水仙花数：水仙花数是这样一个三位数,它的每个数位的数字的立方和等于它本身。
       */
      /* 
      a^3+b^3+c^3 = abc
      1+125+27 = 153
      2**3=8
      Math.pow(2,3)
      */
      // var a, b, c; //个位 十位 百位
      // for (var i = 100; i < 1000; i++) {
      //   a = parseInt(i % 10); //个位数
      //   b = parseInt((i / 10) % 10); //十位数
      //   c = parseInt(i / 100); //百位数
      //   if (a ** 3 + b ** 3 + c ** 3 == i) {
      //     console.log(i); //153 370 371 407
      //   }
      // }

      /*
       (提高)
       猜数字游戏
       规则：
       1. 电脑随机生成一个 0~99 之间的数字；
       2. 玩家有 7 次猜测的机会；
       3. 玩家猜测一个数字, 输入到程序中；
       4. 电脑根据输入的数字打印: 猜大了/猜小了/猜对了的情况； 
       5. 猜对了, 那么游戏结束，显示恭喜您；
       6. 7 次机会用完打印: 您的次数用完了, 您失败了；
       */
      var randomNum = Math.floor(Math.random() * 100); //随机生成0~99的数字
      alert(randomNum);
      //玩家有七次机会
      var count = 7;
      //是否猜中
      var isSuccess = false;
      for (var i = 0; i < count; i++) {
        //获取用户输入
        var inputNum = Number(prompt('请输入数字'));
        //inputNum和randomNum比较
        if (inputNum === randomNum) {
          alert('恭喜您，猜对了');
          isSuccess = true;
          break;
        } else if (inputNum > randomNum) {
          alert('猜大了');
        } else {
          alert('猜小了');
        }
        if (i === count - 1) {
          alert('你的次数用完了');
        }
      }
    </script>
  </body>
</html>
